【Python】批量生成Excel文件

您所在的位置:网站首页 python创建excel表格并写入openpy l 【Python】批量生成Excel文件

【Python】批量生成Excel文件

2024-04-19 13:12| 来源: 网络整理| 查看: 265

前言

Python可以很方便地对Excel进行处理,比如:工作簿的新建,数据的写入,数据的读取,而且效率非常高。在这里给大家介绍几个包:openpyxl(读写)、xlrd(读)、xlwt(写)包。

openpyxl包介绍

1)openpyxl包-创建、写入、保存

###新建工作簿,写入内容,关闭工作簿 from openpyxl import Workbook from openpyxl.compat import range from openpyxl.utils import get_column_letter #新建工作簿 wb = Workbook() sht1 = wb.active #给新建的工作表改名 sht1.title = 's1' sht2 = wb.create_sheet(title = 's2') sht3 = wb.create_sheet(title = 's3') #写入内容和公式的方法 (A1、R1C1种样式) sht1['A1'] = 100 sht1['A2'] = "=randbetween(1,100)" sht2.cell(row = 1 , column= 1 , value = 'python') #单元格合并与取消合并 sht1.merge_cells('C1:C2') #sht1.unmerge_cells('C1:C2') sht1.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4) #sht1.merge_cells(start_row=2, start_column=1, end_row=4, end_column=4) #循环生成列的英文字母 for i in range(1,11): for j in range(1,11): sht3.cell(column = i, row = j, value="{0}".format(get_column_letter(j))) #工作簿的保存 wb.save(filename = "C:\\Users\\Administrator\\Desktop\\testDemo.xlsx")

生成s3工作表内容如下:

2)openpyxl包-读取内容

#读取excel方法 from openpyxl import load_workbook filename= "C:\\Users\\Administrator\\Desktop\\testDemo.xlsx" wb = load_workbook(filename) #读取所有工作表名称2种方法 all_shtnames = wb.sheetnames #all_shtnames = wb.get_sheet_names() #工作表的2种索引方法 sht1 = wb.get_sheet_by_name('s1') sht3 = wb['s3'] #读取单元格内容 print(sht3['A2'].value)

openpyxl包关于对Excel工作簿内容的读取相对比较少,xlrd包相对功能比较强,下一篇文章主要讲利用xlrd包来批量读取Excel文件,并进行内容合并。

3)openpyxl包-批量新建并写入内容

#要求:1)生成10个工作簿 (N1.xlsx,N2.xlsx...N10.xlsx) # 2)每个工作簿的内容格式如下(生成20个学生的成绩信息3个字段:班级N1..N10,st_1...st_20,score随机 #可以读写excel的openpyxl包 from openpyxl import Workbook import numpy as np #from datetime import datetime for i in range(1,11): #新建工作簿 wb = Workbook() #新建工作表并修改名称 ws = wb.active ws.title = 'N' + str(i) # 写入标题 ws['A1'] = 'class' ws['B1'] = 'name' ws['C1'] = 'score' # 循环写入内容 for j in range(2,22): ws.cell(row=j, column=1, value = 'N' + str(i)) ws.cell(row=j, column=2, value = 'st_' + str(j-1)) #生成1-100之间的成绩(整数) ws.cell(row=j, column=3, value = int(np.random.randint(1,100,1))) # 文件保存 wb.save('C:\\Users\\Administrator\\Desktop\\excelDemo\\N' + str(i) + '.xlsx')

批量生成excel工作簿结果如下:

总结

本文主要是利用openpyxl包进行Excel的批量生成并进行数据写入。当然openpyxl包除了可以对Excel进行数据的读写与保存,还有其他相关操作,比如:字段筛选与排序、添加批注、工作表设置、创建表格、插入图片、打印设置、也可以结合numpy、pandas包来进行数据的写入。另外,进行图表绘制(包括线形图、面积图、柱形图、球形图、雷达图、箱图、Surface charts等)也是其一大模块。总之,openpyxl包还是非常强大的。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3